package com.zhentao.controller;

import com.github.pagehelper.PageInfo;
import com.zhentao.model.common.dtos.ResponseResult;
import com.zhentao.model.complaint.dto.ComplaintDto;
import com.zhentao.model.complaint.pojo.AdComplaint;
import com.zhentao.model.complaint.vo.ComplaintVo;
import com.zhentao.service.AdComplaintService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

@RestController
@RequestMapping("/api/v1/admin/complaint")
@Api(tags = "ComplaintController-投诉管理")
public class ComplaintController {

    @Resource
    AdComplaintService adComplaintService;

    /**
     * 投诉列表查询
     * @param dto
     * @return
     */
    @PostMapping("/list")
    @ApiOperation("投诉列表查询")
    public ResponseResult list(@RequestBody ComplaintDto dto){
        PageInfo<ComplaintVo> pageInfo=adComplaintService.complaintList(dto);
        return ResponseResult.okResult(pageInfo);
    }

    /**
     * 未处理投诉列表查询
     * @param dto
     * @return
     */
    @PostMapping("/notChecklist")
    @ApiOperation("未处理投诉列表查询")
    public ResponseResult notChecklist(@RequestBody ComplaintDto dto){
        PageInfo<ComplaintVo> pageInfo=adComplaintService.notChecklist(dto);
        return ResponseResult.okResult(pageInfo);
    }

    /**
     * 用户提交投诉
     * @param complaint
     * @return
     */
    @PostMapping("/add")
    @ApiOperation("用户提交投诉")
    public ResponseResult add(@RequestBody AdComplaint complaint){
        return adComplaintService.add(complaint);
    }
    /**
     * 投诉审核失败
     * @param dto
     * @return
     */
//    @PostMapping("/loser")
//    @ApiOperation("投诉审核失败")
//    public ResponseResult loser(@RequestBody ComplaintDto dto){
//        return adComplaintService.loser(dto);
//    }

    /**
     * 投诉审核成功
     * @param dto
     * @return
     */
    @PostMapping("/status")
    @ApiOperation("投诉审核成功")
    public ResponseResult status(@RequestBody ComplaintDto dto){
        return adComplaintService.status(dto);
    }

    /**
     * 根据userid查看投诉审核失败原因
     * @param userId
     * @return
     */
    @ApiOperation("根据userid查看投诉审核失败原因")
    @GetMapping("/getFeedback/{userId}")
    public ResponseResult getFeedback(@PathVariable("userId") Integer userId){
        return adComplaintService.getFeedback(userId);
    }


}
